场景转换(Transitions) Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。
场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类。如TransitionFadeDown、TransitionPageTurn、TransitionJumpZoom等等。
下图是TransitionScene的类关系图:
主要的切换特效有: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 TransitionRotoZoom 旋转进入 TransitionJumpZoom 跳动进入 TransitionPageTurn 翻页效果进入 TransitionRadialCCW 钟摆效果 TransitionMoveInL / TransitionMoveInR / TransitionMoveInT / TransitionMoveInB 左侧/右侧/顶部/底部进入 TransitionSlideInL/TransitionSlideInR/TransitionSlideInT/TransitionSlideInB 分别从左侧/右侧/顶部/底部滑入 TransitionShrinkGrow 交替进入 TransitionFlipX/TransitionFlipY x轴翻入(左右)/ y轴翻入(上下) TransitionFlipAngular 左上右下轴翻入 TransitionZoomFlipX/TransitionZoomFlipY x轴翻入放大缩小效果(左右)/ y轴翻入放大缩小效果(上下) TransitionFadeTR /TransitionFadeBL/TransitionFadeUp/TransitionFadeDown 小方格右上角显示进入/ 小方格左下角显示进入/ 横条向上显示进入/ 横条向下显示进入 TransitionSplitCols / TransitionSplitRows 竖条切换进入/ 横条切换进入 TransitionZoomFlipAngular 左上右下轴翻入放大缩小效果 TransitionFade 渐隐进入 TransitionCrossFade 渐变进入 TransitionTurnOffTiles 小方格消失进入 TransitionRadialCCW/TransitionRadialCW 扇面展开收起
场景转换的实现:1 2 3 4 5 auto scene = Scene::create(); auto layerHello = HelloWorld::create(); scene->addChild(layerHello); auto transitions = TransitionRotoZoom::create(2.f, scene); Director::getInstance()->replaceScene(transitions);